package dk.au.cs.peterbn.patterns;

import java.util.Set;

/**
 * Defines a role of a member method.
 * Implemented as an abstract class instead of an interface to provide a default value for
 * the required flag.
 */
public interface MemberRole extends HasDescription{
    /**
     * @return true if the member is a required part of the pattern, false if it is optional
     */
    public boolean isRequired();

    String getName();

    Set<CallSite> getCallSites();
}
